﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using KPIS.GERP.GHRMS.MODEL;

namespace KPIS.GERP.GHRMS.IBLL
{
    public interface IJobSiteBLL
    {
        DataTable ListJobSite(string strJobSiteTypeSeq);
        IList<JobSiteInfo> ListJobSiteByTypes(string JobSiteTypes);
        IList<JobSiteInfo> ListJobSiteByTypes(string JobSiteTypes, string JobSiteLevels);
        IList<JobSiteInfo> ListJobSiteByUppers(string UpperSeq);
        IList<JobSiteInfo> ListJobSiteBySequence(string Sequence);
        IList<JobSiteInfo> LoadJobSiteTreeView(Nullable<int> JobSiteSeq, Nullable<int> JobSiteTypeSeq);
        DataSet LoadJobSites(string Sequence, string Types, string Upper, string Level);
        DataSet LoadJobSiteSearchText(string Types, string Level, string SearchText);

        void Insert(string RefNo, string Name, string NameShort, string NameEng
            , string NameEngShort, string GFMIS, string JobDescription, string Remarks
            , Nullable<int> CreatedBy, Nullable<DateTime> StartDate, Nullable<DateTime> EndDate
            , string Address, string District, string City, string Country
            , string PostalCode, string Tel, string Fax, Nullable<int> UpperJobSite
            , int JobSiteTypes, int WorkAreas, int JobSiteLevels, Nullable<int> ExternalJobSite
			, string Address2, string WebAddress, string JobSiteHeadSeq);
        void Update(int Sequence, string RefNo, string Name, string NameShort, string NameEng
            , string NameEngShort, string GFMIS, string JobDescription, string Remarks
            , Nullable<int> UpdatedBy, Nullable<DateTime> StartDate, Nullable<DateTime> EndDate
            , string Address, string District, string City, string Country
            , string PostalCode, string Tel, string Fax, Nullable<int> UpperJobSite
            , int JobSiteTypes, int WorkAreas, int JobSiteLevels, Nullable<int> ExternalJobSite
            , string Address2, string WebAddress, string JobSiteHeadSeq);

        void Update(JobSiteInfo jobSiteInfo);
        void Delete(int Sequence, int UpdatedBy);
    }
}
